var MenuGlobal={
};

$(document).ready(function(){
	$('#menuTree').tree({    
	    url: mainDomain+'/menu/selectAllMenu.action',  
	    lines:true,
	    animate:true,
	    method:'get',
	    dnd:true,
	    onBeforeDrag:function (node){
	    	var nodeData=node.attributes;
	    	if(nodeData.menuParentId==0){
	    		return false;
	    	}
	    },
	    onBeforeDrop:function (target, source, point){
	    	var sourceData=source.attributes;
	    	var targetData=$('#menuTree').tree('getNode',target).attributes;
	    	if(sourceData.menuParentId==0){
	    		return false;
	    	}
	    	if(sourceData.menuType==0 && targetData.menuParentId==0){
	    		return false;
	    	}
	    	if(sourceData.menuType==0 && targetData.menuType==0){
	    		return false;
	    	}
	    	if(sourceData.menuType==1 && targetData.menuParentId!=0){
	    		return false;
	    	}
	    	if(targetData.menuType==0){
	    		return false;
	    	}
	    },
	    onDrop:function (target, source, point){
	    	var sourceData=source.attributes;
	    	var targetData=$('#menuTree').tree('getNode',target).attributes;
	    	var menu={id:sourceData.id,menuParentId:targetData.id};
	    	$.post(mainDomain+'/menu/updateMenu.action',menu,function(rs){
	    		if(rs.success){
	    			$('#menuTree').tree('reload');
	    		}
	    	},'json');
	    },
	    formatter:function(node){
	    	var menu=node.attributes;
	    	var opts=[];
	    	if(menu.isVisible==0){
	    		opts.push('<span style="font-size:16px;color:gray;">'+node.text+'</span>');
	    	}else{
	    		opts.push('<span style="font-size:16px;">'+node.text+'</span>');
	    	}
	    	opts.push('<span class="tree-opt"><div class="divhr"></div>');
	    	if(menu.menuType==1 || menu.menuType==2){
	    		opts.push('<span title="新增子菜单"  class="iconspan icon-add" onclick="openAddSubMenu('+node.id+')"></span>');
	    		opts.push('<span title="编辑" style="margin-left:5px;" class="iconspan icon-edit" onclick="openUpdateMenu('+node.id+')"></span>');
	    	}else{
	    		opts.push('<span title="编辑"  class="iconspan icon-edit" onclick="openUpdateMenu('+node.id+')"></span>');
	    	}
	    	opts.push('</span>');
			return opts.join('');;
		},
	    loadFilter: function(data,parent){   
	    	var treeJsons=[];
	    	var L1=[];
	    	var other=[];
	    	var menuMap={};
	    	if(!$.isEmptyObject(data)){
	    		$.each(data,function(i,v){
	    			var nodeJson={};
	    			nodeJson.id=v.id;
	    			nodeJson.text=v.menuName;
	    			nodeJson.state='open';
	    			nodeJson.attributes=v;
	    			nodeJson.children=[];
	    			if(v.menuParentId==0){
	    				L1.push(nodeJson);
	    			}else{
	    				other.push(nodeJson);
	    				if(v.menuParentId in menuMap){
	    					menuMap[v.menuParentId].push(nodeJson);
	    				}else{
	    					menuMap[v.menuParentId]=[];
	    					menuMap[v.menuParentId].push(nodeJson);
	    				}
	    			}
	    		});
	    		for(var j=0;j<other.length;j++){
	    			if(other[j].id in menuMap){
	    				other[j].children=menuMap[other[j].id];
	    			}
	    		}
	    		for(var i=0;i<L1.length;i++){
	    			var nodeData=L1[i];
	    			if(nodeData.id in menuMap){
	    				nodeData.children=menuMap[nodeData.id];
	    			}
	    			treeJsons[i]=nodeData;
	    		}
	    	}
	    	return treeJsons;
	    }    
	});  
	$('#menuAddBtn').click(function(){
		backendCommon.openeWin("menuWin");
		$("#menuWin").window('move',{top:100});
		backendCommon.formReset("menuForm");
		var opts='<option value="1" default="true">菜单</option>';
		$('#menuType').empty().append(opts);
		
		$('#menuSaveBtn').unbind('click').bind('click',function(){
			addMenu(0);
		});
	});
	$('#menuCancelBtn').click(function(){
		backendCommon.closeWin("menuWin");
	});
	
});

function openAddSubMenu(id){
	backendCommon.openeWin("menuWin",300);
	backendCommon.formReset("menuForm");
	var node=$('#menuTree').tree('find',id);
	var parent=$('#menuTree').tree('getParent',node.target); 
	if(parent){
		var opts='<option value="0">操作</option>';
		$('#menuType').empty().append(opts);
	}else{
		var opts='<option value="1" default="true">菜单</option><option value="2" >外部链接URL</option>';
		$('#menuType').empty().append(opts);
	}
	$('#menuSaveBtn').unbind('click').bind('click',function(){
		addMenu(id);
	});
	return false;
}

function openUpdateMenu(id){
	backendCommon.openeWin("menuWin",300);
	backendCommon.formReset("menuForm");
	var node=$('#menuTree').tree('find',id);
	var old=node.attributes;
	$('input,select', '#menuForm').each(function(){
		var name=$(this).attr('name');
		$(this).val(old[name]);
	});
	if(old.menuType==1){
		var opts='<option value="1" default="true">菜单</option>';
		$('#menuType').empty().append(opts);
	}else if(old.menuType==2){
		var opts='<option value="2" >外部链接URL</option';
		$('#menuType').empty().append(opts);
	}else{
		var opts='<option value="0" default="true">操作</option>';
		$('#menuType').empty().append(opts);
	}
	$('#menuSaveBtn').unbind('click').bind('click',function(){
		updateMenu(id);
	});
	return false;
}
function addMenu(parentId){
	if($('#menuForm').form('validate')){
		var menu=$('#menuForm').serializeObject();
		menu.menuParentId=parentId;
		$.post(mainDomain+'/menu/addMenu.action',menu,function(rs){
			if(rs.success){
				$('#menuTree').tree('reload');
				backendCommon.closeWin("menuWin");
			}
		},'json');
	}
}
function updateMenu(id){
	if(!$('#menuForm').form('validate')){
		return;
	}
	var menu=$('#menuForm').serializeObject();
	menu.id=id;
	$.post(mainDomain+'/menu/updateMenu.action',menu,function(rs){
		if(rs.success){
			var node=$('#menuTree').tree('find',id);
			node.text=menu.menuName;
			$.extend(node.attributes,menu);
			$('#menuTree').tree('update', {
				target: node.target,
				text: node.text
			});
			backendCommon.closeWin("menuWin");
		}
	},'json');
}